package com.easy.interceptor;

import com.alibaba.fastjson.JSON;
import com.easy.common.CommonResult;
import com.easy.util.JWTUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //在处理handle之前执行
        // 返回true   可以执行对应的handler  返回false  执行不到handler
        //return true/false是springMVC中的运行路线需求    不是回应给浏览器的
        // 验证每个请求是否是登陆状态
        // 怎样就是登陆状态   有token，token有效

        //token在哪？   在headers当中  叫做Authorization
        String token=request.getHeader("Authorization");
        if(token!=null && JWTUtil.verifyToken(token)){
            //说明有token  ，token有效  有登陆状态
            return true;
        }else {
            //要回应的数据

             CommonResult result=CommonResult.fail(400,"未登录");
            // 将数据解析成JSON
            String json= JSON.toJSONString(result);
            //将数据回应
            response.getWriter().write(json);
             return false;
        }

    }


}
